After I finished my last essay,[1] which talked about Category Theory and knowledge databases, I decided to have another peek at Rocco Gangle’s rather unique Diagrammatic Immanence, just to see if I could make a little more sense of it than last time I’ve opened it, which is a while ago. I find the bringing together of mathematics, philosophy, and the “theory” of diagrams super-interesting, but the book is heavy, heavy on jargon—and I mean the philosophical bits in particular, to be sure.

Turtles all the way down [commons]
Anyways, right at the beginning there was actually something I found rather enlightening. Philosophy gives you different options for how to think about things, often mutually exclusive, like the Transcendent view vs. the Immanent view of reality. According to the former, the real world consists of substances and properties. But how those substances become “things,” and how these things then “hang together,” is to be explained on a level entirely different from the material world. The Immanent view, on the other hand, tells us that everything—things and their relationships—is embedded in one reality. Somehow, for Gangle, that means everything “reduces” to relationships.
To let him speak for himself:
If immanence is how reality is ultimately structured, then ontology is ineluctably constrained to relations. Things must be relations ‘all the way down’ (however far that is) without remainder. It is normally thought that there are things, or objects. It is also commonly understood that relations depend upon there being things that they relate. It is argued here that if immanence is correct metaphysically speaking, then this normal way of thinking is wrong on both counts, or rather both these ‘truisms’ must be elaborated and ultimately understood in ways contrary to their usual senses. They should finally be expressed solely as claims involving distinctions among kinds or degrees of relations themselves. ‘Things’ in the usual sense are ultimately no more than relations of some kind or another that hold or do not hold among other sorts of relations, and so on.[2]
Without claiming to have understood this fully, it for sure this struck a chord with me. I’ve always wondered about this “things having properties” issue. How is it that things have properties? Sue “has” a mother. The rose “is” red. In both cases we’re dealing with properties. Having a mother is somehow a property of a “substance” (the material entity called Sue) in the same way (in some respect) as being red is a property of the “substance” that is the rose.
One has to go back to Aristotle’s Categories (part of his Organon) to get a grasp on the meaning of this. There he says something along the lines of “there are things and there are things said of these things.” So the primary things are what are also called substances—what I think of as objects with spatial extension in the real world. Beyond that, there are qualities these things have, which are “said of” them; we call these predicates (or attributes, depending on context). So it is really an argument, in my mind, that starts with linguistic observations (although these were not explicitly conceived as such).
In any case, apart from colour, which we may imagine to “emanate” from a thing, I could never conceive of anything else that could “naturally” be attributed to a thing. And then, we can say that a thing “has a” shape, making even a thing”s shape a property like all the others. This always led me to ask: what remains of a thing after subtracting all its properties? Is there anything? You see, this is a very similar conclusion to the one Gangle seems to have arrived at.
When modelling databases, this can be experienced practically. Databases can represent real-world entities in the form of ‘types.’ Usually, by this we mean rows in a table, with different columns representing different properties. This is one hundred percent classical theory of concepts, as you would call it in cognitive science.[3] It is basically the Aristotelian model.
Let’s say we have a persons table, and in it we have rows for Tina, Sue, and Ann. Furthermore, the table has columns for age and hair colour. What this mathematically means is that we have three sets—name, age, and hair colour—the Cartesian product giving us all possible combinations of all possible names, all possible ages, and all possible hair colours. The concrete combinations for Tina, Sue, and Ann with their respective ages and hair colours are what we call relations, and what makes us call this type of database “relational” (I always thought the ability to join tables was the reason).
Now, we can distribute the different sets expressed by the different columns over multiple tables and relate them via keys. This is immensely useful. Say you have a table with person names and street names of the street they live on. Furthermore, imagine a street is officially renamed. Now, all the entries for people who live on that street have to be adjusted. This can be avoided by storing the streets in a separate table, with the people living on a given street linked to it via a keyed relationship.
This technique is called normalisation, and there are different levels of normalisation. I looked into this a couple of weeks ago because I never formally learned it. But skimming the theory briefly, it seemed to confirm my suspicion that there simply is one “principle of normalisation,” which is to say that you can repeat this process over and over again. I don’t think there’s really any justification for separating out individual “named” levels (the various normal forms); but this is a side point anyway. My point here will be that you can repeat this process over and over until literally nothing remains of an entity—except an obligatory unique identifier identifying a certain thing across time. This is very much reminiscent of our capacity for understanding object permanence (as it’s called in childhood psychology).
Even more interestingly, as we can demonstrate with “the rose is red,” we might normalise not only rose, the substance part, completely—such that only an identifier for an abstract rose (the Platonic idea, if you will) remains—but also “red,” the quality/attribute part. We might store red in a colour table, identifying red by a unique identifier and nothing else, pushing out the property that we call that colour shade “red” into another table, which represents the _name_s of things, or the names of colour shades. Whether all this is useful from a query perspective is not the point. The point is, rather, that you can take this game to absurd levels. And that driving things in that direction seems to me to emphasise relations rather than things.
This is something I have actually found useful in a knowledge-management system I’ve been developing.[4] I’ve found storing data (properties) in so-called join-tables immensely useful. Join-tables are tables that represent relationships. Storing data in relationships instead of entities allows entities to “appear” differently in different contexts. I apologise for being a bit vague here. I may make this more concrete when I write more about the system I mentioned, or about one I’m currently working on and am about to publish something about as well.[5]
In Applying UML and Patterns, Craig Larman repeatedly and emphatically made the point that we neglect process diagrams in favour of entity relationship diagrams, and said it would be a sign of an engineer’s maturity that they make more use of sequence diagrams. As a general observation I’ve always found this very right, although I’ve never actually followed through on doing it. You might want to descend to your lows here and rub this in my face by pointing out that this obviously shows my lack of engineering maturity :D. But jokes aside, there is a deeply rooted reason why representing objects comes to us so naturally. Daniel Kahneman’s The Reviewing of Object Files: Object-Specific Integration of Information, for example, explains that there are “slots” in our cognition for tracking objects. Objects, according to cognitive scientist Susan Carey, are one of the fundamental categories of our core cognition. And so on.
As I said initially, Philosophy gives you different options for how to think about things. People like Whitehead have taken views other than those focused on substances very seriously. His aptly named “process philosophy” (disclaimer: haven’t read) makes processes the primary constituents of reality. As with the Immanence/Transcendence distinction, the point is not really about proving the truth or correctness of one viewpoint over the other. Rather, the real value in conducting these deliberations lies in “drawing from” such conceptual options to design and implement processes and real things in the material world. And one such option is to focus on relations first.
“Saying something about things” (predication) seems very natural to us. But in the same way that we have difficulty explicitly representing time, focusing on relations first does not come easily—in fact, it’s a bit unintuitive. But leaning into the unintuitive may occasionally open up design options otherwise difficult to see.
Footnotes
Category Theory and Knowledge Databases: The “argument from interoperability” for why knowledge might be consistent only locally - link.
Rocco Gangle. Diagrammatic Immanence: Category Theory and Philosophy. p.5.
The contrasting view to be mentioned is that of Prototype Theory, pioneered by Eleanor Rosch.
Rhizome: A “total recall” note-taking and content-management and -archival system for Superhuman Memory [Whitepaper] - link.
Edit: This was being meant: Personalist - An integrated universe of personal encyclopedias [Whitepaper] - link.